#ifndef __S5P4418GPIO_H_
#define __S5P4418GPIO_H_

#define uchar           unsigned char
#define u8              unsigned char
#define u16             unsigned short
#define uint            unsigned int
#define u32             unsigned int

#define GPIO_Addr       0xC0010000
#define UART_Addr       0xC00A0000

#define GPIOBOUT        (*(volatile uint *)(GPIO_Addr + 0xB000))
#define GPIOBOUTENB     (*(volatile uint *)(GPIO_Addr + 0xB004))
#define GPIOBPAD        (*(volatile uint *)(GPIO_Addr + 0xB018))
#define GPIOBALTFN0     (*(volatile uint *)(GPIO_Addr + 0xB020))
#define GPIOBALTFN1     (*(volatile uint *)(GPIO_Addr + 0xB024))

#define GPIODOUT        (*(volatile uint *)(GPIO_Addr + 0xD000))
#define GPIODOUTENB     (*(volatile uint *)(GPIO_Addr + 0xD004))
#define GPIODPAD        (*(volatile uint *)(GPIO_Addr + 0xD018))
#define GPIODALTFN0     (*(volatile uint *)(GPIO_Addr + 0xD020))
#define GPIODALTFN1     (*(volatile uint *)(GPIO_Addr + 0xD024))

#define UART0_Addr      (UART_Addr + 0x1000)

#define UARTDR          (*(volatile u8 *)(UART0_Addr + 0x0000))
#define UARTFR          (*(volatile uint *)(UART0_Addr + 0x0018))
#define UARTIBRD        (*(volatile uint *)(UART0_Addr + 0x0024))
#define UARTFBRD        (*(volatile uint *)(UART0_Addr + 0x0028))
#define UARTLCR_H       (*(volatile uint *)(UART0_Addr + 0x002C))
#define UARTCR          (*(volatile uint *)(UART0_Addr + 0x0030))

#define UARTCLKENB      (*(volatile uint *)(0xC00A0000 + 0x9000))
#define UARTCLKGEN0L    (*(volatile uint *)(0xC00A0000 + 0x9004))

#endif
